package com.itheima.lambda.test0;

//前提条件: 使用Lambda表达式时,必须要有一个接口,并且这个接口中有且只能有一个抽象方法
//函数式接口
public interface Swim {
    void swimming();
}
class Test{
    public static void main(String[] args) {
        //需求: 使用匿名内部类语法,创建Swim接口的实现类对象
        Swim s1 = new Swim() {
            @Override
            public void swimming() {
                System.out.println("铁汁,我们去游泳吧~");
            }
        };

        //需求1: 使用Lambda语法,创建Swim接口的实现类对象
        //Lambda的本质: 整个式子的整体充当的就是接口的实现类对象
        //Lambda的核心: 关注的只有实现类对象要怎么重写接口的抽象方法  -- 怎么做!!!
        Swim s2 = ()-> { System.out.println("铁汁,我们去游泳吧~"); };
        method(()-> { System.out.println("铁汁,我们去游泳吧~"); });
    }

    public static void method(Swim swim){
        //Swim swim = ()-> { System.out.println("铁汁,我们去游泳吧~"); };
        swim.swimming();
    }
}
